軟體研發有其生命周期,包括設計、開發、部署、維護等階段;而利用科技自動化輔助每個關鍵環節進行,就稱為軟體生命周期管理。
軟體就像建築工程,有其生命周期。任何一個軟體都要經歷需求分析(RA)、軟體設計(SD)、程式開發(coding)及單元測試(unit test)、整合及系統測試(integration and system test)、安裝(install)、實施(implementation)等各種歷程,直到最後的廢止。
在軟體的生命周期中,每一個關鍵都有其任務,同時產生一定的規格或是程序再交付給予下一個動作。如果缺少管理,或者是流程中的某個環節建立在上一個過程所產生的錯誤結果之上,整個軟體工程極有可能面臨失敗的命運。
另外,軟體導入之後,後續維護也屬於軟體生命周期的一部份,包括對於系統瑕疵所進行的需求分析、實施變更所需要的程式開發,以及後續的測試。